home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 1320 / 1320.xpi / chrome / gmanager.jar / content / migrate / migrate.js < prev    next >
Text File  |  2010-01-22  |  4KB  |  101 lines

  1. // Gmail Manager
  2. // By Todd Long <longfocus@gmail.com>
  3. // http://www.longfocus.com/firefox/gmanager/
  4.  
  5. var gmanager_Migrate = new function()
  6. {
  7.   this.__proto__ = new gmanager_BundlePrefix("gmanager-migrate-");
  8.   
  9.   this.load = function()
  10.   {
  11.     var passwords = null;
  12.     var accountsList = document.getElementById("gmanager-migrate-accounts-listbox");
  13.     
  14.     // Unwrap the window arguments
  15.     if ("arguments" in window && window.arguments.length > 0)
  16.     {
  17.       // window.arguments[0] : passwords
  18.       
  19.       passwords = window.arguments[0];
  20.     }
  21.     
  22.     // Check if the passwords are specified
  23.     if (passwords && passwords.length > 0)
  24.     {
  25.       for (var i = 0; i < passwords.length; i++)
  26.       {
  27.         var accountItem = document.createElement("listitem");
  28.         accountItem.setAttribute("class", "gmanager-migrate-listitem");
  29.         accountItem.setAttribute("email", passwords[i].user);
  30.         accountItem.setAttribute("password", passwords[i].password);
  31.         accountsList.appendChild(accountItem);
  32.       }
  33.     }
  34.     else
  35.     {
  36.       var accountItem = document.createElement("listitem");
  37.       accountItem.setAttribute("label", this.getString("no-accounts"));
  38.       accountsList.setAttribute("disabled", "true");
  39.       accountsList.appendChild(accountItem);
  40.       
  41.       // Disable the login checkbox
  42.       var loginCheckbox = document.getElementById("gmanager-migrate-login-checkbox");
  43.       loginCheckbox.setAttribute("disabled", "true");
  44.       
  45.       // Disable the passwords button
  46.       var passwordsButton = document.getElementById("gmanager-migrate-passwords-button");
  47.       passwordsButton.setAttribute("disabled", "true");
  48.     }
  49.     
  50.     // Toggle the passwords (initially hidden)
  51.     this.togglePasswords();
  52.   }
  53.   
  54.   this.togglePasswords = function()
  55.   {
  56.     var isHidden = document.getElementById("gmanager-migrate-accounts-password-listcol").collapsed;
  57.     document.getElementById("gmanager-migrate-passwords-button").label = (isHidden ? this.getString("hide-passwords") : this.getString("show-passwords"));
  58.     document.getElementById("gmanager-migrate-accounts-password-listcol").collapsed = !isHidden
  59.   }
  60.   
  61.   this.dialogAccept = function()
  62.   {
  63.     var manager = Components.classes["@longfocus.com/gmanager/manager;1"].getService(Components.interfaces.gmIManager);
  64.     var isLogin = document.getElementById("gmanager-migrate-login-checkbox").checked;
  65.     var accountItems = document.getElementsByTagName("listitem");
  66.     var isModified = false;
  67.     
  68.     for (var i = 0; i < accountItems.length; i++)
  69.     {
  70.       var accountItem = accountItems[i];
  71.       
  72.       // Check if the account should be added
  73.       if (accountItem.checked)
  74.       {
  75.         var account = manager.addAccount("gmail", accountItem.email, accountItem.email, accountItem.password, null);
  76.         
  77.         isModified = true;
  78.         
  79.         // Check if the account exists and we should login
  80.         if (account && isLogin)
  81.         {
  82.           // Login to the account
  83.           account.login(null);
  84.         }
  85.       }
  86.     }
  87.     
  88.     if (isModified)
  89.     {
  90.       // Save the accounts
  91.       manager.save();
  92.       
  93.       // Notify the observers that preferences have changed
  94.       var observer = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
  95.       observer.notifyObservers(null, "gmanager-prefs-notify-changed", null);
  96.     }
  97.     
  98.     // Close the dialog
  99.     return true;
  100.   }
  101. }